gtk-demo: Use GdkEvent API
authorMatthias Clasen <mclasen@redhat.com>
Mon, 28 Aug 2017 22:47:03 +0000 (18:47 -0400)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 19 Sep 2017 16:39:03 +0000 (18:39 +0200)
demos/gtk-demo/application.c
demos/gtk-demo/clipboard.c
demos/gtk-demo/drawingarea.c
demos/gtk-demo/event_axes.c
demos/gtk-demo/font_features.c
demos/gtk-demo/hypertext.c
demos/gtk-demo/popover.c

index d2aa1f7f4f43f6136fe867ae5f8dcd58ea00d22f..732c3766d4cb395aa01c3998c9cdc390c92e8f8d 100644 (file)
@@ -475,12 +475,14 @@ demo_application_window_state_event (GtkWidget           *widget,
 {
   DemoApplicationWindow *window = (DemoApplicationWindow *)widget;
   gboolean res = GDK_EVENT_PROPAGATE;
+  GdkWindowState changed, new_state;
 
   if (GTK_WIDGET_CLASS (demo_application_window_parent_class)->window_state_event)
     res = GTK_WIDGET_CLASS (demo_application_window_parent_class)->window_state_event (widget, event);
 
-  window->maximized = (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0;
-  window->fullscreen = (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) != 0;
+  gdk_event_get_window_state ((GdkEvent *)event, &changed, &new_state);
+  window->maximized = (new_state & GDK_WINDOW_STATE_MAXIMIZED) != 0;
+  window->fullscreen = (new_state & GDK_WINDOW_STATE_FULLSCREEN) != 0;
 
   return res;
 }
index a9576aa2c110eab55d1838ae4a3798abfbce92df..b3b8e6086d916685416b029b79775a7aaebe8c20 100644 (file)
@@ -172,13 +172,16 @@ paste_image (GtkMenuItem *item,
 
 static gboolean
 button_press (GtkWidget      *widget,
-              GdkEventButton *button,
+              GdkEventButton *event,
               gpointer        data)
 {
   GtkWidget *menu;
   GtkWidget *item;
+  guint button;
 
-  if (button->button != GDK_BUTTON_SECONDARY)
+  gdk_event_get_button ((GdkEvent *)event, &button);
+
+  if (button != GDK_BUTTON_SECONDARY)
     return FALSE;
 
   menu = gtk_menu_new ();
@@ -193,7 +196,7 @@ button_press (GtkWidget      *widget,
   gtk_widget_show (item);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
 
-  gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) button);
+  gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) event);
   return TRUE;
 }
 
index a6a685bebfab8900ba3ec731dab7e821490407ca..538c5f75a117ed652b7986b25b8198eebb6ea95f 100644 (file)
@@ -94,11 +94,17 @@ scribble_button_press_event (GtkWidget      *widget,
                              GdkEventButton *event,
                              gpointer        data)
 {
+  double x, y;
+  guint button;
+
   if (surface == NULL)
     return FALSE; /* paranoia check, in case we haven't gotten a configure event */
 
-  if (event->button == GDK_BUTTON_PRIMARY)
-    draw_brush (widget, event->x, event->y);
+  gdk_event_get_button ((GdkEvent *)event, &button);
+  gdk_event_get_coords ((GdkEvent *)event, &x, &y);
+
+  if (button == GDK_BUTTON_PRIMARY)
+    draw_brush (widget, x, y);
 
   /* We've handled the event, stop processing */
   return TRUE;
@@ -126,7 +132,9 @@ scribble_motion_notify_event (GtkWidget      *widget,
    * can cope.
    */
 
-  gdk_window_get_device_position (event->window, event->device, &x, &y, &state);
+  gdk_window_get_device_position (gdk_event_get_window ((GdkEvent *) event),
+                                  gdk_event_get_device ((GdkEvent *) event),
+                                  &x, &y, &state);
 
   if (state & GDK_BUTTON1_MASK)
     draw_brush (widget, x, y);
index bc34b09e21e7767653fa406fa318b313b67d2712..88d248f13ddf2b28fc7bdb5873c7509dec164282 100644 (file)
@@ -120,6 +120,7 @@ update_axes_from_event (GdkEvent  *event,
   GdkDevice *device, *source_device;
   GdkEventSequence *sequence;
   GdkDeviceTool *tool;
+  GdkEventType type;
   gdouble x, y;
   AxesInfo *info;
 
@@ -127,14 +128,15 @@ update_axes_from_event (GdkEvent  *event,
   source_device = gdk_event_get_source_device (event);
   sequence = gdk_event_get_event_sequence (event);
   tool = gdk_event_get_device_tool (event);
+  type = gdk_event_get_event_type (event);
 
-  if (event->type == GDK_TOUCH_END ||
-      event->type == GDK_TOUCH_CANCEL)
+  if (type == GDK_TOUCH_END ||
+      type == GDK_TOUCH_CANCEL)
     {
       g_hash_table_remove (data->touch_info, sequence);
       return;
     }
-  else if (event->type == GDK_LEAVE_NOTIFY)
+  else if (type == GDK_LEAVE_NOTIFY)
     {
       g_hash_table_remove (data->pointer_info, device);
       return;
@@ -172,24 +174,24 @@ update_axes_from_event (GdkEvent  *event,
 
   g_clear_pointer (&info->axes, g_free);
 
-  if (event->type == GDK_TOUCH_BEGIN ||
-      event->type == GDK_TOUCH_UPDATE)
+  if (type == GDK_TOUCH_BEGIN ||
+      type == GDK_TOUCH_UPDATE)
     {
-      if (sequence && event->touch.emulating_pointer)
+      gboolean emulating_pointer;
+
+      gdk_event_get_touch_emulating_pointer (event, &emulating_pointer);
+      if (sequence && emulating_pointer)
         g_hash_table_remove (data->pointer_info, device);
     }
-  if (event->type == GDK_MOTION_NOTIFY)
-    {
-      info->axes =
-      g_memdup (event->motion.axes,
-                sizeof (gdouble) * gdk_device_get_n_axes (source_device));
-    }
-  else if (event->type == GDK_BUTTON_PRESS ||
-           event->type == GDK_BUTTON_RELEASE)
+  if (type == GDK_MOTION_NOTIFY ||
+      type == GDK_BUTTON_PRESS ||
+      type == GDK_BUTTON_RELEASE)
     {
-      info->axes =
-      g_memdup (event->button.axes,
-                sizeof (gdouble) * gdk_device_get_n_axes (source_device));
+      gdouble *axes;
+      guint n_axes;
+
+      gdk_event_get_axes (event, &axes, &n_axes);
+      info->axes = g_memdup (axes, sizeof (double) * n_axes);
     }
 
   if (gdk_event_get_coords (event, &x, &y))
index 761bf8f38fae6da1d77a1b5ba1115af7ee3596de..b75508f4056f4cac03a152f6265071a55c226432 100644 (file)
@@ -456,7 +456,11 @@ switch_to_label (void)
 static gboolean
 entry_key_press (GtkEntry *entry, GdkEventKey *event)
 {
-  if (event->keyval == GDK_KEY_Escape)
+  guint keyval;
+
+  gdk_event_get_keyval ((GdkEvent *)event, &keyval);
+
+  if (keyval == GDK_KEY_Escape)
     {
       gtk_entry_set_text (GTK_ENTRY (entry), text);
       switch_to_label ();
index c655453dee417f97d177b7e0ad885af9cbdf5a51..4de7ed922a06d3ff65b771735bcbaeef0f2ca43f 100644 (file)
@@ -110,8 +110,11 @@ key_press_event (GtkWidget *text_view,
 {
   GtkTextIter iter;
   GtkTextBuffer *buffer;
+  guint keyval;
 
-  switch (event->keyval)
+  gdk_event_get_keyval ((GdkEvent *)event, &keyval);
+
+  switch (keyval)
     {
       case GDK_KEY_Return:
       case GDK_KEY_KP_Enter:
@@ -137,31 +140,27 @@ event_after (GtkWidget *text_view,
   GtkTextIter start, end, iter;
   GtkTextBuffer *buffer;
   gdouble ex, ey;
-  gint x, y;
+  int x, y;
+  GdkEventType type;
+
+  type = gdk_event_get_event_type (ev);
 
-  if (ev->type == GDK_BUTTON_RELEASE)
+  if (type == GDK_BUTTON_RELEASE)
     {
-      GdkEventButton *event;
+      guint button;
 
-      event = (GdkEventButton *)ev;
-      if (event->button != GDK_BUTTON_PRIMARY)
+      gdk_event_get_button (ev, &button);
+      if (button != GDK_BUTTON_PRIMARY)
         return FALSE;
-
-      ex = event->x;
-      ey = event->y;
     }
-  else if (ev->type == GDK_TOUCH_END)
+  else if (type == GDK_TOUCH_END)
     {
-      GdkEventTouch *event;
-
-      event = (GdkEventTouch *)ev;
-
-      ex = event->x;
-      ey = event->y;
     }
   else
     return FALSE;
 
+  gdk_event_get_coords (ev, &ex, &ey);
+
   buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view));
 
   /* we shouldn't follow a link if the user has selected something */
@@ -232,11 +231,13 @@ static gboolean
 motion_notify_event (GtkWidget      *text_view,
                      GdkEventMotion *event)
 {
+  gdouble ex, ey;
   gint x, y;
 
+  gdk_event_get_coords ((GdkEvent *)event, &ex, &ey);
   gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
                                          GTK_TEXT_WINDOW_WIDGET,
-                                         event->x, event->y, &x, &y);
+                                         ex, ey, &x, &y);
 
   set_cursor_if_appropriate (GTK_TEXT_VIEW (text_view), x, y);
 
index 1c07a48c121c9214da291169e78188b56a32ee3a..8b48542532816f30c9881d74de9cb73599c5d6d6 100644 (file)
@@ -100,18 +100,20 @@ day_selected_cb (GtkCalendar *calendar,
   GtkAllocation allocation;
   GtkWidget *popover;
   GdkEvent *event;
+  GdkWindow *window;
+  gdouble x, y;
 
   event = gtk_get_current_event ();
 
-  if (event->type != GDK_BUTTON_PRESS)
+  if (gdk_event_get_event_type (event) != GDK_BUTTON_PRESS)
     return;
 
-  gdk_window_coords_to_parent (event->button.window,
-                               event->button.x, event->button.y,
-                               &event->button.x, &event->button.y);
+  window = gdk_event_get_window (event);
+  gdk_event_get_coords (event, &x, &y);
+  gdk_window_coords_to_parent (window, x, y, &x, &y);
   gtk_widget_get_allocation (GTK_WIDGET (calendar), &allocation);
-  rect.x = event->button.x - allocation.x;
-  rect.y = event->button.y - allocation.y;
+  rect.x = x - allocation.x;
+  rect.y = y - allocation.y;
   rect.width = rect.height = 1;
 
   popover = create_popover (GTK_WIDGET (calendar),